package com.Thread;

/**
 * @ClassName Demo4
 * @Description 定义一个采集数据的线程，模拟每隔2秒进行数据的采集，
 * 在主线程中，10秒后终止采集线程，程序结束
 * @Author Kx
 * @Date 2025/3/11 13:33
 * @Version 1.0
 */
public class Demo4 {
    public static void main(String[] args) {
        // 创建线程
        Thread thread = new Thread(new MyThread1());

        // 启动线程
        thread.start();

        // 主线程休眠10秒
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // 中断线程
        thread.interrupt();
    }
}

class MyThread1 extends Thread{
    @Override
    public void run() {
        while (true) {
            // 获取中断标志
            boolean flag = Thread.currentThread().isInterrupted();

            if(flag) {
                break;
            }

            System.out.println("采集数据");
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                Thread.currentThread().interrupt();
            }
        }
    }
}
